package com.dks.repository;

import com.dks.dto.BaseIdRequestDto;
import com.dks.dto.student.LeaveDto;
import com.dks.dto.student.StudentTaskAddDto;
import com.dks.enumeration.ClassAttendStatus;
import com.dks.exception.BaseException;
import com.dks.result.ResultModel;
import com.dks.util.PageInfo;
import com.dks.vo.student.StudentTaskVo;


public interface IStudentClassRepository {

    ResultModel<Boolean> addTask(StudentTaskAddDto studentTaskAddDto);

    ResultModel<PageInfo<StudentTaskVo>> listTask(Long userId, Long parentId, Long qsClassId, Long studentId, Integer status, Integer pageNum, Integer pageSize);

    ResultModel<Boolean> leave(LeaveDto leaveDto);

    ResultModel<Boolean> suspend(BaseIdRequestDto baseIdRequestDto) throws BaseException;

    ResultModel<Boolean> suspendClass(long seriesClassId, long userId, ClassAttendStatus classAttendStatus) throws BaseException;

    ResultModel<Boolean> suspendSystem(BaseIdRequestDto baseIdRequestDto);

    ResultModel<StudentTaskVo> taskDetail(Long userId, Long taskId);

    ResultModel<Object> getStudentClassList(Long studentId, String beginTime, String endTime, Long courseCategoryId, String studentBirthDay, Integer pageNum, Integer pageSize);

    ResultModel<Object> getStudentClassDetail(Long studentClassId);

    ResultModel<Object> getTaskRequirement(Long classId);
}
